package com.tfd.blog.repository;

import com.tfd.blog.domain.LabelRel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.List;

/**
 * @author TangFD@HF 2019/5/8
 */
@Repository
public interface LabelRelRepository extends JpaRepository<LabelRel, String> {

    /**
     * 根据业务Id获取标签关联
     *
     * @param objId 业务Id
     * @return 标签关联数据
     */
    List<LabelRel> findByObjId(String objId);

    /**
     * 根据业务Id删除所有的标签关联
     *
     * @param objId 业务Id
     * @return 删除记录数
     */
    int deleteByObjId(String objId);

    /**
     * 根据业务Id,标签Id列表 删除所关联的标签
     *
     * @param articleId 业务Id
     * @param labelIds  标签Id列表
     * @return 删除记录数
     */
    int deleteByObjIdAndLabelIdIn(String articleId, Collection<String> labelIds);

    /**
     * 根据业务Id批量获取标签关联
     *
     * @param objIds 业务Id列表
     * @return 标签关联数据
     */
    List<LabelRel> findByObjIdIn(Collection<String> objIds);

    void deleteByLabelId(String id);
}
